package com.fm.financemanage.mapper;

import com.fm.financemanage.model.po.SysUser;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

import com.fm.financemanage.model.vo.SysUserVo;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface SysUserMapper {
    int deleteByPrimaryKey(Long id);

    int insert(SysUser record);

    int insertSelective(SysUser record);

    SysUser selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(SysUser record);

    int updateByPrimaryKey(SysUser record);

    /**
     * 查询用户
     */
    SysUser findById(Integer id);

    /**
     * 校验手机号码是否唯一
     *
     * @param phonenumber 手机号码
     * @return 结果
     */
    public SysUser checkPhoneUnique(String phonenumber);

    /**
     * 用户登录
     *
     * @param loginname 用户账号
     * @param password  用户密码
     * @return 结果
     */
    SysUser login(@Param("loginname") String loginname, @Param("password") String password);

    int countByCondition(@Param("keyword") String keyword);

    List<SysUserVo> getByCondition(@Param("keyword") String keyword, @Param("page") Integer page, @Param("limit") Integer limit);

    /**
     * 校验用户名称是否唯一
     *
     * @param loginName 登录名称
     * @return 结果
     */
    public int checkLoginNameUnique(@Param("loginName") String loginName, @Param("id") Long id);

    /**
     * 校验email是否唯一
     *
     * @param email 用户邮箱
     * @return 结果
     */
    public SysUser checkEmailUnique(String email);

    List<Long> selectByPath(@Param("path") String path, @Param("method") String method);

    int deleteUserByIds(Long[] ids);

    /**
     * 查询用户
     *
     * @param loginname 用户账号
     * @return 结果
     */
    SysUser findByName(@Param("loginname") String loginname);

    SysUser findByKey(@Param("companyKey")String companyKey);
}